package cj.web.portal.controllers;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import net.paoding.rose.web.annotation.Param;
import net.paoding.rose.web.annotation.Path;
import net.paoding.rose.web.annotation.rest.Get;
import net.paoding.rose.web.var.Model;
import net.sf.json.JSONObject;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;

import cj.utils.Constants;
import cj.utils.DateUtils;
import cj.web.admin.constants.CategoryEnum;
import cj.web.admin.constants.SourceEnum;
import cj.web.portal.dao.LineDAO;

/**
 * 列表
 * @author HanMin
 *
 * 2015年12月29日
 */
@Path("line")
public class LineController {

	private static Logger logger = Logger.getLogger(LineController.class.getName());
	
	@Autowired
	private LineDAO lineDAO;
	
	//列表页
	@Get("home")
	public String home(Model model,@Param("category") String category)
	{
		if(category==null || "".equals(category))
		{
			category="0";
		}
		
		model.add("head", "cjtt");
		model.add("category", category);//category
		model.add("jtpphdls", jtpphd(String.valueOf(CategoryEnum.CJTT_PPHD.getValue())));//集团品牌活动列表
		return "line/list.vm";
	}
	
	//长江头条-长江头条
	@Get("cjtt")
	public String showCJTT(Model model)
	{
		model.add("head", "cjtt");
		model.add("memu", "cjtt");
		model.add("category", CategoryEnum.CJTT_CJTT.getValue());//category
		model.add("jtpphdls", jtpphd(String.valueOf(CategoryEnum.CJTT_PPHD.getValue())));//集团品牌活动列表
		return "line/list.vm";
	}
	
	//长江头条-微聚合
	@Get("wbry")
	public String showWBRY(Model model)
	{
		model.add("head", "cjtt");
		model.add("memu", "wbry");
		model.add("category", CategoryEnum.CJTT_WBRY.getValue());//category
		model.add("jtpphdls", jtpphd(String.valueOf(CategoryEnum.CJTT_PPHD.getValue())));//集团品牌活动列表
		return "line/list.vm";
	}
	
	//长江头条-集团动态
	@Get("wxtt")
	public String showWXTT(Model model)
	{
		model.add("head", "cjtt");
		model.add("memu", "wxtt");
		model.add("category", CategoryEnum.CJTT_WXTT.getValue());//category
		model.add("jtpphdls", jtpphd(String.valueOf(CategoryEnum.CJTT_PPHD.getValue())));//集团品牌活动列表
		return "line/list.vm";
	}
	
	//长江头条-品牌活动
	@Get("pphd")
	public String showPPHD(Model model)
	{
		model.add("head", "cjtt");
		model.add("memu", "pphd");
		model.add("category", CategoryEnum.CJTT_PPHD.getValue());//category
		model.add("jtpphdls", jtpphd(String.valueOf(CategoryEnum.CJTT_PPHD.getValue())));//集团品牌活动列表
		return "line/list.vm";
	}
	
	//列表方法
	@Get("lis")
	public String getLine(@Param("category") String category,
			@Param("start") int start,@Param("length") int length)
	{
		JSONObject jo = new JSONObject();
		jo.put("returnFlag", Constants.returnObj.returnFlag_true);
		//查询首页长江头条,品牌活动,微聚合列表
		List<Map> reps = lineDAO.query(category, start*length, length);
		
		List<Map> list = new ArrayList<Map>();
		for(Map rep :reps)
		{
			Map liRep = new HashMap();
			liRep.put("id", rep.get("id"));//ID
			liRep.put("title", rep.get("title"));//标题
			liRep.put("categoryClass", rep.get("category"));//类别Id
			liRep.put("abstractInfor", rep.get("abstractInfor"));//简介
			liRep.put("source",SourceEnum.getDefaultImg(Integer.parseInt(rep.get("source").toString())));//来源
			//缩率图
			String carouselImage = rep.get("carouselImage")==null?"":rep.get("carouselImage").toString();
			if(carouselImage !=null && !"".equals(carouselImage))
			{
				String carouselImages[] = carouselImage.split("/");
				liRep.put("carouselImage", carouselImages[0]+"/s_"+carouselImages[1]);//缩率图
			}
			else
			{
				liRep.put("carouselImage", "");//缩率图
			}
			liRep.put("releaseAT", DateUtils.getBetweenMinNumber(DateUtils.getNowTime()
					,rep.get("releaseAT").toString()));//发布时间
			
			list.add(liRep);
		}
		jo.put("list", list);//列表
		jo.put("category", category);//category
		return "@"+jo.toString();
	}
	
	/**
	 * 详情页面
	 * @param model
	 * @param id
	 * @return
	 */
	@Get("detail")
	public String getLineDetail(Model model,@Param("id") String id)
	{
		List<Map> rep = lineDAO.queryById(id);
		String category = "";
		if(rep!=null && rep.size()>0)
		{
			model.add("id",rep.get(0).get("id"));
			model.add("title",rep.get(0).get("title"));//标题
			
			category = rep.get(0).get("category").toString();//分类
			model.add("category",category);//分类
			
			model.add("abstractInfor",rep.get(0).get("abstractInfor"));//摘要
			model.add("content",rep.get(0).get("content"));//内容
			model.add("author",rep.get(0).get("author"));//作者
			model.add("releaseAT",DateUtils.getDateTime2Str(
					DateUtils.parse(rep.get(0).get("releaseAT").toString()), DateUtils.DATE_FULL_STR));//发布时间
			model.add("source",SourceEnum.getName(Integer.parseInt(rep.get(0).get("source").toString())));//来源
			model.add("qrCode",SourceEnum.getQrCode(Integer.parseInt(rep.get(0).get("source").toString())));//二维码
		}
		
		model.add("jtpcjtts", jtpphd(category));//集团长江头条列表
		model.add("jtpphdls", jtpphd(String.valueOf(CategoryEnum.CJTT_PPHD.getValue())));//集团品牌活动列表
		
		return "line/detail.vm";
	}
	
	/**
	 * 详情页面
	 * @param model
	 * @param id
	 * @return
	 */
	@Get("share")
	public String getLineDetailShare(Model model,@Param("id") String id)
	{
		List<Map> rep = lineDAO.queryById(id);
		String category = "";
		if(rep!=null && rep.size()>0)
		{
			model.add("id",rep.get(0).get("id"));
			model.add("title",rep.get(0).get("title"));//标题
			
			category = rep.get(0).get("category").toString();//分类
			model.add("category",category);//分类
			String carouselImage = rep.get(0).get("carouselImage")==null?"":rep.get(0).get("carouselImage").toString();
			
			model.add("carouselImage",carouselImage);
			
			model.add("abstractInfor",rep.get(0).get("abstractInfor"));//摘要
			model.add("content",rep.get(0).get("content"));//内容
			model.add("author",rep.get(0).get("author"));//作者
			model.add("releaseAT",DateUtils.getDateTime2Str(
					DateUtils.parse(rep.get(0).get("releaseAT").toString()), DateUtils.DATE_FULL_STR));//发布时间
			model.add("source",SourceEnum.getName(Integer.parseInt(rep.get(0).get("source").toString())));//来源
			model.add("qrCode",SourceEnum.getQrCode(Integer.parseInt(rep.get(0).get("source").toString())));//二维码
		}
		
		model.add("jtpcjtts", jtpphd(category));//集团长江头条列表
		model.add("jtpphdls", jtpphd(String.valueOf(CategoryEnum.CJTT_PPHD.getValue())));//集团品牌活动列表
		
		return "line/share.vm";
	}
	
	/**
	 * 集团down
	 * @param category
	 * @return
	 */
	private List<Map> jtpphd(String category)
	{
		//集团品牌活动
		List<Map> ppls = lineDAO.query(category, 0, 5);
		List<Map> pphdls = new ArrayList<Map>();
		for(Map rep :ppls)
		{
			Map l_rep = new HashMap();
			l_rep.put("id", rep.get("id"));//ID
			String title=rep.get("title").toString();
			if(title.length()>15)
			{
				title=title.toString().substring(0, 15)+"...";
			}
			l_rep.put("title", title);//标题
			l_rep.put("abstractInfor", rep.get("abstractInfor"));//简介
			//缩率图
			String carouselImage = rep.get("carouselImage")==null?"":rep.get("carouselImage").toString();
//			if(carouselImage !=null && !"".equals(carouselImage))
//			{
//				String carouselImages[] = carouselImage.split("/");
//				l_rep.put("carouselImage", carouselImages[0]+"/s_"+carouselImages[1]);//缩率图
//			}
//			else
//			{
//				l_rep.put("carouselImage", "");//缩率图
//			}
			l_rep.put("carouselImage", carouselImage);//缩率图
			l_rep.put("releaseAT",DateUtils.getDateTime2Str(
					DateUtils.parse(rep.get("releaseAT").toString()), DateUtils.DATE_FULL_STR));//缩率图
			
			pphdls.add(l_rep);
		}
		return pphdls;
	}
}